﻿// Example header text. Can be configured in the options.
using System;
using System.Configuration;
using System.Management;
using System.Windows.Forms;
using vtech_frameWorks.Exceptions;

namespace vtech_frameWorks.Library
{
    public class ClsCommonLib
    {
        // Methods
        //public static string ConvertCiphersToLeters(string ciphers)
        //{
        //    char[] chArray = ciphers.ToCharArray();
        //    char[] chArray2 = new char[chArray.Length];
        //    for (int i = 0; i < chArray.Length; i++)
        //    {
        //        if (('0' <= chArray[i]) && (chArray[i] <= '9'))
        //        {
        //            chArray2[i] = (char)(chArray[i] + '\x0011');
        //        }
        //        else
        //        {
        //            chArray2[i] = chArray[i];
        //        }
        //    }
        //    return new string(chArray2);
        //}
        //public static string ConvertLetersToCiphers(string letters)
        //{
        //    char[] chArray = letters.ToCharArray();
        //    char[] chArray2 = new char[chArray.Length];
        //    for (int i = 0; i < chArray.Length; i++)
        //    {
        //        if (('A' <= chArray[i]) && (chArray[i] <= 'J'))
        //        {
        //            chArray2[i] = (char)(chArray[i] - '\x0011');
        //        }
        //        else
        //        {
        //            chArray2[i] = chArray[i];
        //        }
        //    }
        //    return new string(chArray2);
        //}
        //public static string DateTimeVNToString(ClsNullableDate dateTime)
        //{
        //    if ((dateTime == null) || dateTime.IsNull)
        //    {
        //        return "";
        //    }
        //    return string.Format("{0}/{1}/{2}", dateTime.Date.Day.ToString(), dateTime.Date.Month.ToString(), dateTime.Date.Year.ToString());
        //}
        //public static string DateTimeVNToString(DateTime dateTime)
        //{
        //    return string.Format("{0}/{1}/{2}", dateTime.Day.ToString(), dateTime.Month.ToString(), dateTime.Year.ToString());
        //}
        //public static string DecimalToMoney(decimal money)
        //{
        //    string str = "";
        //    bool flag = false;
        //    if (money < 0M)
        //    {
        //        money = -money;
        //        flag = true;
        //    }
        //    double num = Math.Floor((double)money);
        //    while (num >= 1000.0)
        //    {
        //        string str2 = ((int)(num % 1000.0)).ToString();
        //        if (str2.Length == 1)
        //        {
        //            str2 = string.Format("00{0}", str2);
        //        }
        //        else if (str2.Length == 2)
        //        {
        //            str2 = string.Format("0{0}", str2);
        //        }
        //        str = string.Format("{0}.{1}", str2, str);
        //        num = Math.Floor((num / 1000.0));
        //    }
        //    str = string.Format("{0}.{1}", ((int)(num % 1000.0)).ToString(), str);
        //    if (str.EndsWith("."))
        //    {
        //        str = str.Substring(0, str.Length - 1);
        //    }
        //    if (flag)
        //    {
        //        str = string.Format("-{0}", str);
        //    }
        //    return str;
        //}
        //public static string DoubleToMoney(double money)
        //{
        //    string str = "";
        //    bool flag = false;
        //    if (money < 0.0)
        //    {
        //        money = -money;
        //        flag = true;
        //    }
        //    double num = Math.Floor(money);
        //    while (num >= 1000.0)
        //    {
        //        string str2 = ((int)(num % 1000.0)).ToString();
        //        if (str2.Length == 1)
        //        {
        //            str2 = string.Format("00{0}", str2);
        //        }
        //        else if (str2.Length == 2)
        //        {
        //            str2 = string.Format("0{0}", str2);
        //        }
        //        str = string.Format("{0}.{1}", str2, str);
        //        num = Math.Floor((num / 1000.0));
        //    }
        //    str = string.Format("{0}.{1}", ((int)(num % 1000.0)).ToString(), str);
        //    if (str.EndsWith("."))
        //    {
        //        str = str.Substring(0, str.Length - 1);
        //    }
        //    if (flag)
        //    {
        //        str = string.Format("-{0}", str);
        //    }
        //    return str;
        //}
        public static string GetMacAddressID()
        {
            try
            {
                ManagementObjectCollection instances = new ManagementClass("Win32_NetworkAdapterConfiguration").GetInstances();
                string str = string.Empty;
                foreach (ManagementObject objManagement in instances)
                {
                    if ((str == string.Empty) && ((bool)objManagement["IPEnabled"]))
                    {
                        str = objManagement["MacAddress"].ToString();
                    }
                    objManagement.Dispose();
                }
                str = str.Replace(":", "");
                return str;
            }
            catch (Exception ex)
            {
                ClsInformation.Error(ex.Message);
                return null;
            }
        }

        //public static DateTime GetSystemDateTime()
        //{
        //    DateTime systemDateTime;
        //    SqlConnection connection = new SqlConnection(ClsLocalSettings.ConnectString);
        //    try
        //    {
        //        connection.Open();
        //        systemDateTime = GetSystemDateTime(connection.CreateCommand());
        //    }
        //    catch (SqlException exception)
        //    {
        //        //throw new Exception("Lỗi khi lấy thời gian hệ thống " + GetSqlExceptionMessage(exception));
        //    }
        //    finally
        //    {
        //        connection.Close();
        //    }
        //    return systemDateTime;
        //}

        //public static DateTime GetSystemDateTime(SqlCommand cmd)
        //{
        //    cmd.CommandText = "SELECT GETDATE()";
        //    DateTime time = (DateTime)cmd.ExecuteScalar();
        //    time.Subtract(new TimeSpan(0, 0, 0, 0, time.Millisecond));
        //    return time;
        //}

        //public static DateTime GetSystemTimeOfDate(DateTime specifyDate)
        //{
        //    DateTime systemDateTime = GetSystemDateTime();
        //    return new DateTime(specifyDate.Year, specifyDate.Month, specifyDate.Day, systemDateTime.Hour, systemDateTime.Minute, systemDateTime.Second, systemDateTime.Millisecond);
        //}

        public static void ShowHelp(string objectName)
        {
            try
            {
                string keyword = "";
                keyword = ConfigurationSettings.AppSettings[objectName];
                if (keyword == null)
                {
                    keyword = "./Help.htm";
                }
                string url = ConfigurationSettings.AppSettings["HelpFileName"];
                Help.ShowHelp(null, url, keyword);
            }
            catch (Exception)
            {
            }
        }

        public static string GetRootDirectory
        {
            get
            {
                return Application.StartupPath;
            }
        }
    }
}